﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ZOVNP.Model.Abstracts
{
    /// <summary> Состояние доменного объекта. </summary>
    [Flags]
    public enum EntityState
    {
        /// <summary>
        /// Объект существует, но не отслеживается менеджером сущностей. Объект находится в этом
        /// состоянии непосредственно после того, как он был создан, и до добавления его в контекст.
        /// Объект находится в этом состоянии также и тогда, когда он изымается из контекста с помощью
        /// метода <c>System.Data.Objects.ObjectContext.Detach(System.Object)</c>, или если он был
        /// загружен с опцией <c>System.Data.Objects.MergeOption.NoTrackingSystem</c>.
        /// </summary>
        Detached = 1,
        /// <summary>
        /// Объект не был изменён с момента своей загрузки в контекст либо с момента последнего вызова метода
        /// <c>System.Data.Objects.ObjectContext.SaveChanges()</c>. 
        /// </summary>
        Unchanged = 2,
        /// <summary>
        /// Объект был добавлен в контекст, но метод <c>System.Data.Objects.ObjectContext.SaveChanges()</c> ещё не вызывался.
        /// Объекты добавляются в контекст с помощью метода <c>System.Data.Objects.ObjectContext.AddObject(System.String,System.Object)</c>.
        /// </summary>
        Added = 4,
        /// <summary> Объект был удалён из контекста методом <c>System.Data.Objects.ObjectContext.DeleteObject(System.Object)</c>. </summary>
        Deleted = 8,
        /// <summary> Объект был изменён, но метод <c>System.Data.Objects.ObjectContext.SaveChanges()</c> ещё не был вызван. </summary>
        Modified = 16,
    }
}
